package graph.paint;

import graph.Node;

import org.eclipse.swt.graphics.GC;

/**
 * A NodePointer is able to paint a node as a graphic shape.
 * A shape has a boundary.
 * 
 * @author frodemj
 *
 * @param <T>
 */

public interface NodePainter<T> {
	/**
	 * paint the graphic shape of a node
	 * @param gc
	 * @param node
	 */
	void paint(GC gc, ViewPort viewPort, Node<T> node);
	/**
	 * Return the screen position of the boundary at direction xdir/ydir  
	 * @param node
	 * @param xdir
	 * @param ydir
	 * @return
	 */
	int[] boundary(GC gc, ViewPort viewPort, Node<T> node, double xdir, double ydir);
}
